﻿#pragma warning(disable: 4477)
#pragma warning(disable: 4996)
#pragma warning(disable: 6031)
#pragma warning(disable: 6054)
/*
 */
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <assert.h>
 
typedef struct TContext_s
{
	int n;
	int m;
	int level;
	char c;
}TContext;

TContext context;

void calc_level(TContext* ctx)
{
	ctx->level = 1;
	ctx->m = 1;
	--ctx->n;
	int m = ctx->m + 2;
	while (ctx->n >= m*2)
	{
		ctx->n -= m * 2;
		ctx->m = m;
		m += 2;
		++ctx->level;
	}
}

void read_data(TContext* ctx)
{
	scanf("%d ", &ctx->n);
	scanf("%c", &ctx->c);
}

void do_task(TContext* ctx)
{
	calc_level(ctx);
	for (int i = 1, m = ctx->m; i <  ctx->level; ++i, m -= 2) {
		for (int j = 1; j < i; ++j)
			printf(" ");
		for (int j = 0; j < m; ++j)
			printf("%c", ctx->c);
		printf("\n");
	}
	for (int i = 0, m = 1; i < ctx->level; ++i, m += 2) {
		for (int j = i+1; j < ctx->level; ++j)
			printf(" ");
		for (int j = 0; j < m; ++j)
			printf("%c", ctx->c);
		printf("\n");
	}
	printf("%d\n", ctx->n);
}

void solve(TContext* ctx)
{
	read_data(ctx);
	do_task(ctx);
}

int main()
{
	freopen("D:/Develop/GitRepos/MOOC/浙江大学/数据结构/201906/DataStructure/M2019秋C入门和进阶练习集/7-127.txt", "r", stdin);
	solve(&context);
	return 0;
}
